<?php

class compraService
{
	private $_numeroService;
	private $_movimientosService;
	private $_detalleService;
	
	public function compraService(){
		$this->_movimientosService = new movimientosService();
		$this->_numeroService = new numeroService();
		$this->_detalleService = new detalleService();
	}
	public function saveCompra(Compra $model)
	{
		$model->rubro = 1;
		$fecha_cierre = $this->_numeroService->getFechaCierre();
		$model->mes_iva = ($model->fecha_envio<$fecha_cierre?date_add(new DateTime($fecha_cierre), new DateInterval('P1D'))->format('Y-m-d H:i:s'):$model->fecha_envio);
		if ($model->save()) {
			if ($model->forma_pago == 1) {
				$total = $model->neto + $model->iva_27 + $model->iva_credito + $model->exento + $model->retenciones + $model->impuesto_interno;
				$this->_movimientosService->insertMovimiento(1, $model->prefijo_comprobante, 15, $model->numero_comprobante, $model->proveedor, $total, date('Y-m-d'), "Pago directo");
			}
			return true;
		}
		else{
			return false;
		}
		
	}
	public function deleteCompra($idCompra)
	{
		$delete = Compra::model()->findByPK($idCompra);
		$this->_detalleService->deleteDetalleCompra($idCompra);
		$this->_movimientosService->deleteMovimientoCompra($delete->prefijo_comprobante, $delete->numero_comprobante, 15, $delete->proveedor);
		
		$delete->delete();
	}
	public function saveGasto(Compra $model){
		if(isset($model->formaPago->banco0) && $model->formaPago->banco>0 && $model->forma_pago!=2){
			$total = $model->neto + $model->iva_27 + $model->iva_credito + $model->exento + $model->retenciones + $model->impuesto_interno;
			$this->_movimientosService->insertMovimiento($model->formaPago->banco, $model->prefijo_comprobante,15, $model->numero_comprobante, $model->proveedor, $total, $model->fecha_envio, $model->observacion);			
		}
	}

	
}
?>